#include "ExecutiveResource.h"

ExecutiveResource::~ExecutiveResource()
{
	ExDeleteResourceLite(&m_Resource);
}

VOID
ExecutiveResource::Init()
{
	ExInitializeResourceLite(&m_Resource);
}

VOID
ExecutiveResource::Lock()
{
	ExEnterCriticalRegionAndAcquireResourceExclusive(&m_Resource);
}

VOID 
ExecutiveResource::Unlock()
{
	ExReleaseResourceAndLeaveCriticalRegion(&m_Resource);
}

VOID
ExecutiveResource::LockShared()
{
	ExAcquireResourceSharedLite(&m_Resource, TRUE);
}

VOID
ExecutiveResource::UnlockShared()
{
	ExReleaseResourceAndLeaveCriticalRegion(&m_Resource);
}